package com.oreilly.ez.base;

import com.oreilly.ez.entity.SysUser;
import com.oreilly.ez.repo.SysUserRepo;
import com.oreilly.ez.vo.Log;
import com.oreilly.ez.vo.Mail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Component;

import java.io.File;
import java.net.URL;
import java.util.List;
import java.util.Properties;


@Component
public class AfterStart implements ApplicationRunner {

    @Autowired
    private  YmlConfig ymlConfig;


    @Autowired
    private SysUserRepo userRepo;


    @Autowired
    private SysEventContext eventContext;

    @Override
    public void run(ApplicationArguments args) throws Exception {

        System.out.println("port = "+ ymlConfig.getPort());

        List<SysUser> userList = userRepo.findAll();
        if(userList == null || userList.size() == 0){

            SysUser dbUser = new SysUser();
            dbUser.setPin("200800");
            userRepo.save(dbUser);
        }



//        Properties props=System.getProperties();
//        System.out.println("Java的运行环境版本："+props.getProperty("java.version"));
//        System.out.println("Java的运行环境供应商："+props.getProperty("java.vendor"));
//        System.out.println("Java供应商的URL："+props.getProperty("java.vendor.url"));
//        System.out.println("Java的安装路径："+props.getProperty("java.home"));
//        System.out.println("Java的虚拟机规范版本："+props.getProperty("java.vm.specification.version"));
//        System.out.println("Java的虚拟机规范供应商："+props.getProperty("java.vm.specification.vendor"));
//        System.out.println("Java的虚拟机规范名称："+props.getProperty("java.vm.specification.name"));
//        System.out.println("Java的虚拟机实现版本："+props.getProperty("java.vm.version"));
//        System.out.println("Java的虚拟机实现供应商："+props.getProperty("java.vm.vendor"));
//        System.out.println("Java的虚拟机实现名称："+props.getProperty("java.vm.name"));
//        System.out.println("Java运行时环境规范版本："+props.getProperty("java.specification.version"));
//        System.out.println("Java运行时环境规范供应商："+props.getProperty("java.specification.vender"));
//        System.out.println("Java运行时环境规范名称："+props.getProperty("java.specification.name"));
//        System.out.println("Java的类格式版本号："+props.getProperty("java.class.version"));
//        System.out.println("Java的类路径："+props.getProperty("java.class.path"));
//        System.out.println("加载库时搜索的路径列表："+props.getProperty("java.library.path"));
//        System.out.println("默认的临时文件路径："+props.getProperty("java.io.tmpdir"));
//        System.out.println("一个或多个扩展目录的路径："+props.getProperty("java.ext.dirs"));
//        System.out.println("操作系统的名称："+props.getProperty("os.name"));
//        System.out.println("操作系统的构架："+props.getProperty("os.arch"));
//        System.out.println("操作系统的版本："+props.getProperty("os.version"));
//        System.out.println("文件分隔符："+props.getProperty("file.separator"));   //在 unix 系统中是＂／＂
//        System.out.println("路径分隔符："+props.getProperty("path.separator"));   //在 unix 系统中是＂:＂
//        System.out.println("行分隔符："+props.getProperty("line.separator"));   //在 unix 系统中是＂/n＂
//        System.out.println("用户的账户名称："+props.getProperty("user.name"));
//        System.out.println("用户的主目录："+props.getProperty("user.home"));
//        System.out.println("用户的当前工作目录："+props.getProperty("user.dir"));
//        System.out.println("用户的当前工作目录***："+System.getProperty("user.dir"));

//        String path = this.getClass().getResource("").getPath();
//        System.out.println("path = " + path);
//
//        FileSystemResource dir = new FileSystemResource(ymlConfig.getUploadDir());
//        System.out.println(dir);


//        DefaultResourceLoader resourceLoader = new DefaultResourceLoader();
//        Resource resource = resourceLoader.getResource(ymlConfig.getUploadDir());
//        File file = resource.getFile();
//        System.out.println("file = " + file);
//        System.out.println("file = " + file.getAbsolutePath());
//        File[] files = file.listFiles();
//        for (File file1 : files) {
//            System.out.println(file1);
//        }


        for (int i = 0; i < 10; i++) {

            eventContext.post(new Log());
            eventContext.post(new Mail());
            eventContext.post("hello ##" + i);
        }
    }
}
